<p>Passen Sie diese Beispiele entsprechend Ihren <code class="directive"><a href="./mod/core.html#serverroot">ServerRoot</a></code>- und <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>-Einstellungen an.</p>
<p>Das <code>WINCH</code>- oder <code>graceful-stop</code>-Signal
veranlasst den Elternprozess, die Kinder <em>anzuweisen</em>, sich nach
Abschlu▀ ihrer momentan bearbeiteten Anfrage zu beenden (oder sich
sofort zu beenden, wenn sie gerade nichts bedienen). Der Elternprozess
entfernt dann sein <code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code> und
stellt das Lauschen auf allen Ports ein. Er lΣuft weiter und
beobachtet alle Kindprozesse, die noch Anfragen bearbeiten. Sobald alle
Kindprozesse fertig sind und beendet haben oder die mit <code class="directive"><a href="./mod/mpm_common.html#gracefulshutdowntimeout">GracefulShutdownTimeout</a></code> definierte
Zeitⁿberschreitung erreicht wurde, beendet sich der Elternprozess
ebenfalls. Jedem verbliebenen Kindprozess wird beim Erreichen der
Zeitⁿberschreitung das <code>TERM</code>-Signal gesendet, um diesen
zum Beenden zu zwingen.</p>
<p>Ein <code>TERM</code>-Signal beendet den Elternprozess und alle
Kindprozesse unverzⁿglich, wenn sie sich im "graceful"-Status
<span class="transnote">(<em>Anm.d.▄.:</em> w÷rtl. "gnΣdiger" Status)</span> befinden. Da jedoch das
<code class="directive"><a href="./mod/mpm_common.html#pidfile">PidFile</a></code>dann schon gel÷scht
ist, werden Sie dieses Signal nicht mehr mit <code>apachectl</code> oder
<code>httpd</code> senden k÷nnen.</p>
<div class="note"><p>Das Signal <code>graceful-stop</code> erm÷glicht Ihnen den
Betrieb mehrerer identisch konfigurierter Instanzen von <code>httpd</code>
zur gleichen Zeit. Dies ist eine mΣchtige FunktionalitΣt bei der
Aufrⁿstung des Apache. Sie kann jedoch bei einigen Konfigurationen
auch zur gegenseitigen Blockierung und zu Wettlaufsituationen
fⁿhren.</p>
<p>Es ist besonders darauf zu achten, dass auf Festplatte gespeicherte
Dateien wie <code class="directive"><a href="./mod/core.html#lockfile">Lockfile</a></code> und <code class="directive"><a href="./mod/mod_cgid.html#scriptsock">ScriptSock</a></code> die Server-PID enthalten und ohne
Probleme nebeneinander existieren mⁿssen. Wann auch immer eine
Konfigurationsanweisung, ein Drittanbieter-Modul oder ein persistentes
CGI-Skript irgend eine Sperre oder eine Statusdatei auf Festplatte
speichert, muss besonders darauf geachtet werden, dass mehrere
gleichzeitig laufende Instanzen von <code>httpd</code> sich nicht
gegenseitig die Dateien zerst÷ren.</p>
<p>Sie sollten ebenfalls vorsichtig mit m÷glichen Wettlaufsituationen
sein, wie beispielsweise der Verwendung von weitergeleiteter
Protokollierung nach der Art von <code class="program"><a href="./programs/rotatelogs.html">rotatelogs</a></code>. Mehrere
gleichzeitig laufende Instanzen von <code class="program"><a href="./programs/rotatelogs.html">rotatelogs</a></code>, die
versuchen, die gleichen Protokolldateien zu rotieren, k÷nnen sich
gegenseitig die Protokolldateien zerst÷ren.</p></div>
conditions)</span>, die den Neustart und die Signale beeinflu▀t
haben (einfach gesagt, eine Wettlaufstituation ist ein zeitabhΣngiges
Problem - wenn etwas zum falschen Zeitpunkt oder in der falschen
Reihenfolge geschieht, kommt es zu nicht erwⁿnschten Ergebnissen.
Geschehen die gleichen Dinge zur rechten Zeit, ist alles in Ordnung). Bei
Architekturen mit dem "richtigen" <span class="transnote">(<em>Anm.d.▄.:</em> im Sinne von
"geeignet")</span> Funktionsumfang haben wir so viele eliminiert wie
wir nur konnten. Dennoch sollte beachtet werden, dass noch immer
Wettlaufsituationen auf bestimmten Architekturen existieren.</p>
<p>Bei Architekturen, die ein <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code> auf Platte verwenden,
kann die Statustabelle beschΣdigt werden.
Das kann zu "bind: Address already in use" ("bind: Adresse wird
bereits verwendet", nach einem <code>HUP</code>) oder "long lost
child came home!" ("Der verlorene Sohn ist heimgekehrt", nach einem
<code>USR1</code>) fⁿhren. Ersteres ist ein schwerer Fehler,
wΣrend letzteres lediglich bewirkt, dass der Server einen Eintrag
in der Statustabelle verliert. So kann es ratsam sein, unterbrechungsfreie
Neustarts zusammen mit einem gelegentlichen harten Neustart zu verwenden.
Diese Probleme lassen sich nur sehr schwer umgehen, aber
glⁿcklicherweise ben÷tigen die meisten Architekturen keine
Statustabelle in Form einer Datei. Bitte lesen Sie fⁿr Architekturen,
die sie ben÷tigen, die Dokumentation zu <code class="directive"><a href="./mod/mpm_common.html#scoreboardfile">ScoreBoardFile</a></code>.</p>
<p>Alle Architekturen haben in jedem Kindprozess eine kleine
Wettlaufsituation, welche die zweite und nachfolgende Anfragen
einer persistenten HTTP-Verbindung (KeepAlive) umfa▀t. Der Prozess
kann nach dem Lesen der Anfragezeile aber vor dem Lesen der Anfrage-Header
enden. Es existiert eine Korrektur, die fⁿr 1.2 zu spΣt kam.
Theoretisch sollte das kein Problem darstellen, da
der KeepAlive-Client derartige Ereignisse aufgrund von
Netzwerk-Latenzzeiten und Auszeiten des Servers erwarten sollte.
In der Praxis scheint keiner von beiden beeinflu▀t zu werden
-- in einem Testfall wurde der Server zwanzig mal
pro Sekunde neu gestartet, wΣhrend Clients das Angebot abgegrast
haben, ohne kaputte Bilder oder leere Dokumente zu erhalten.</p>
</div></div>
<div class="bottomlang">
<p><span>Verfⁿgbare Sprachen: </span><a href="./de/stopping.html" title="Deutsch"> de </a> |
<a href="./en/stopping.html" hreflang="en" rel="alternate" title="English"> en </a> |
<a href="./es/stopping.html" hreflang="es" rel="alternate" title="Espa±ol"> es </a> |
<a href="./ja/stopping.html" hreflang="ja" rel="alternate" title="Japanese"> ja </a> |
<a href="./ko/stopping.html" hreflang="ko" rel="alternate" title="Korean"> ko </a></p>
</div><div id="footer">
<p class="apache">Copyright 1995-2006 The Apache Software Foundation or its licensors, as applicable.<br />Lizenziert unter der <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache License, Version 2.0</a>.</p>